#ifndef __WILDSKELETON_H__
#define __WILDSKELETON_H__
#pragma once

#include <string>
#include <vector>
#include "SkinInfo.h"

class wildMdl;
class WildMot;

class WildBone
{
public:
	WildBone();
	WildBone(WildBone* parent, const char* name, WildMot* mot);
	virtual ~WildBone();

	inline std::string GetName() { return m_name; }

	inline WildMot* GetMotion() { return m_motion; }

	void ClearNode(WildBone*& node);

	void Start(wildMdl* mdl, r32 speed=120.0f);
	
	void DoStart( wildMdl* mdl, WildBone* node );

	ckMat* FindBoneMatrix( const char* name );
public:
	
	WildBone* m_pSibling;
	WildBone* m_pParent;
	WildBone* m_pFirstChild;

	std::string m_name;

	WildMot* m_motion;

	ckMat m_Transform;

	std::vector<u16> m_effectNodes;

	ckMat m_startPose;
};

typedef WildBone* BoneSkinTreePtr;



#endif	//	__WILDSKELETON_H__